import 'dart:ui';

import 'package:flutter/material.dart';

class Textdemo {

  static ListView getListView(){
    return ListView(
      children: [

      ],
    );
  }

  static void testPrint() {
    print('hello world ddd');
  }

  static Text getText() {
    return Text(
      "heihei" * 4, //字符串重复六次
      style: const TextStyle(
          color: Colors.black,
          fontSize: 28,
          //字体大小,可以精确指定字体大小
          fontFamily: "Courier",
          //由于不同平台默认支持的字体集不同，所以在手动指定字体时一定要先在不同平台测试一下。
          backgroundColor: Colors.black38,
          decoration: TextDecoration.underline,
          decorationStyle: TextDecorationStyle.dashed,
          // background: Paint(),//不明白意义，调不通
          fontWeight: FontWeight.bold,
          fontStyle: FontStyle.italic,
          letterSpacing: 3.0,
          wordSpacing: 0,
          textBaseline: TextBaseline.ideographic,
          height: 1.2 //该属性用于指定行高，但它并不是一个绝对值，而是一个因子，具体的行高等于fontSize*height
          ),
      textAlign: TextAlign.right,
      //文本的对齐方式
      maxLines: 5,
      //文本显示的最大行数
      overflow: TextOverflow.ellipsis,
      //它会将多余文本截断后以省略符“...”表示
      textScaler: TextScaler
          .noScaling, //代表文本相对于当前字体大小的缩放因子,要是用于系统字体大小设置改变时对 Flutter 应用字体进行全局调整
    );
  }

  static Text getText2() {
    return const Text(
      "haha",
      style: TextStyle(color: Colors.black, backgroundColor: Colors.black12),
      textAlign: TextAlign.right,
    );
  }

  /*
  需要对一个 Text 内容的不同部分按照不同的样式显示
   */
  static Text getText3() {
    return const Text.rich(TextSpan(
        children: [
          TextSpan(
              text: "Home: "
          ),
          TextSpan(
              text: "https://flutterchina.club",
              style: TextStyle(
                  color: Colors.blue
              ),
              // recognizer: _tapRecognizer
          ),
        ]
    ));
  }

  /*
  如果在 Widget 树的某一个节点处设置一个默认的文本样式，那么该节点的子树中所有文本都会默认使用这个样式，而DefaultTextStyle正是用于设置默认文本样式的
   */
  static DefaultTextStyle getText4(){
   return const DefaultTextStyle(
     //1.设置文本默认样式
     style: TextStyle(
       color:Colors.red,
       fontSize: 20.0,
     ),
     textAlign: TextAlign.start,
     child: Column(
       crossAxisAlignment: CrossAxisAlignment.start,
       children: <Widget>[
         Text("hello world"),
         Text("I am Jack"),
         Text("I am Jack",
           style: TextStyle(
               inherit: false, //2.不继承默认样式
               color: Colors.grey
           ),
         ),
       ],
     ),
   );
  }
}

/*
const Text(
    this.data, {
    //data 就是我们需要展示的文字 是字符串类型，这个是必传字段，其他的都是可选
    Key key,
    //widget的标识
    this.style,
    //文本样式，类型是TextStyle
    this.strutStyle,
    //用来设置最小行高的参数
    this.textAlign,
    //文本的对齐方式，类型是TextAlign
    this.textDirection,
    // 文字方向，类型是TextDirection
    this.locale,
    //选择用户语言和格式的标识符，类型是Locale，主要用于国际化
    this.softWrap,
    //bool 类型 ，false标识文本只有一行，水平方向无限
    this.overflow,
    //超出显示区域后的展示方式，类型是TextOverflow
    this.textScaleFactor,
    //double类型 表示文本相对于当前字体的缩放系数，默认为1.0
    this.maxLines,
    // int 类型，显示的最大行数
    this.semanticsLabel,
    //String 类型，给文本加上一个语义标签
    this.textWidthBasis,
    //一行或多行文本宽度的不同方式，类型是TextWidthBasis
  })
 */
